#!/bin/bash

# 检查是否安装了 pandoc
if ! command -v pandoc &> /dev/null; then
    echo "pandoc 未安装，正在安装..."
    brew install pandoc
fi

# 检查参数
if [ $# -eq 0 ]; then
    echo "使用方法: $0 <markdown文件路径> [参考样式文档.docx]"
    echo "示例: $0 example.md reference.docx"
    exit 1
fi

input_file="$1"
reference_doc="$2"

# 获取文件名（不含扩展名）和目录
filename=$(basename "$input_file")
dirname=$(dirname "$input_file")
basename="${filename%.*}"
output_file="$dirname/$basename.docx"

# 检查输入文件是否存在
if [ ! -f "$input_file" ]; then
    echo "错误: 文件 '$input_file' 不存在"
    exit 1
fi

# 检查文件扩展名
if [[ ! "$input_file" =~ \.md$ ]]; then
    echo "警告: 输入文件不是 .md 格式"
    read -p "是否继续转换？(y/n) " answer
    if [ "$answer" != "y" ]; then
        exit 1
    fi
fi

# 构建 pandoc 命令
pandoc_cmd="pandoc \"$input_file\" -f markdown -t docx"

# 如果提供了参考文档，添加参考文档参数
if [ ! -z "$reference_doc" ]; then
    if [ ! -f "$reference_doc" ]; then
        echo "警告: 参考样式文档 '$reference_doc' 不存在"
        read -p "是否继续转换（不使用样式）？(y/n) " answer
        if [ "$answer" != "y" ]; then
            exit 1
        fi
    else
        pandoc_cmd="$pandoc_cmd --reference-doc=\"$reference_doc\""
    fi
fi

pandoc_cmd="$pandoc_cmd -o \"$output_file\""

echo "开始转换..."
echo "输入文件: $input_file"
if [ ! -z "$reference_doc" ] && [ -f "$reference_doc" ]; then
    echo "参考样式: $reference_doc"
fi
echo "输出文件: $output_file"

# 执行转换
eval $pandoc_cmd

# 检查转换是否成功
if [ $? -eq 0 ]; then
    echo "转换成功！文件已保存为: $output_file"
else
    echo "转换失败！"
    exit 1
fi 